import os
import sys
import time
from config import config, updateConfig


def showDisclaimer():
    if config["showDisclaimer"]:
        for line in ["免责声明：\n⚠️重要警示\n对于商业文件、核心数据等对你具有重大价值的文件，强烈建议不要使用本软件。此类文件应通过专业加密工具或服务进行保护。",
                     "⚠️责任声明\n本软件仅为学习交流用途，开发者只是学生，没有相关法律、财务能力，所以不对使用本软件导致的任何文件丢失、损坏或信息泄露承担责任。",
                     "⚠️密码警告\n加密密码为唯一解密依据，无密码将永久无法恢复文件内容。请务必妥善保管密码，因密码遗忘或泄露导致的任何损失，开发者概不负责。",
                     "若出现任何损失，用户自愿承担因使用本软件可能导致的文件丢失、密码遗忘等全部风险。",
                     "本警告将不再显示，若要再次查看，请访问https://github.com/Cyan3771/Cyan-s-File-Encer/blob/main/README.md#免责声明\n或者将config.json文件中的\"showDisclaimer\":后的字段改为true。"]:

            print(line)
            for i in range(int(len(line)*0.06), 0, -1):
                print(f"{i}s后可继续。", end="")
                print(' ' * 50, end="\r")
                time.sleep(1)
            os.system("pause" if sys.platform ==
                      "win32" else 'read -n 1 -s -r -p "按任意键继续..."')
        config["showDisclaimer"] = False
        updateConfig(config)


def getMode():
    mode = input("请输入加密(e)或解密(d)...")
    if mode not in ["e", "d"]:
        print("无效的模式！")
        sys.exit(1)
    return mode


def getPassword():
    pwd = input("输入密码：")
    if pwd != input("确认密码："):
        print("密码不匹配！")
        sys.exit(1)
    return pwd


def openFileExplorer(filePath, fileDir):
    if sys.platform == "win32":
        os.system(f'explorer /select,"{filePath}"')
    elif sys.platform == "darwin":
        os.system(f'open -R "{filePath}"')
    else:
        os.system(f'xdg-open "{fileDir}"')
